The present invention relates to robot controllers, and more particularly to a position control operation and a speed control operation in a robot controller which, when an operating instruction covering a plurality of object positions is issued, are effected in the movement of the robot to an object position.
A conventional robot controller is constructed as shown in FIG. 1. In FIG. 1, reference numeral 1 designates a program memory section for storing a program inputted by an operator and position variable data assembled by teaching or manual data inputting; 2, an instruction decoding section for decoding program instructions stored in the program memory section 1 and being executed at present; 3, an instruction execution control section for executing the instructions of a program according to instruction decoding results provided by the instruction decoding section 2; 4, an object position generating section for forming, when a robot movement instruction is executed, its object position or a position variable; and 5, an object position outputted by the object position generating section.
The object position 5 depends on the type of the movement instruction. In the case of a movement instruction involving linear interpolation, the object position is indicated by the combination of the coordinates (X,Y,Z) of the terminal (finger) of a robot at the destination and the coordinates--Eulerian angle (.alpha.,.beta.,.gamma.)--which indicates the angular orientation of the terminal of the robot. In the case of an articulation operation, the object position is indicated by the coordinates (J.sub.1 . . . , J.sub.k, . . . ) of the axes of the robot at the destination (where J.sub.k is the coordinates of the k-th axis). For the following description of the operation of the robot, the object position will be given in the orthogonal coordinate system.
Further in FIG. 1, reference numeral 6 designates a position control unit including a speed command generating section 7 for performing speed control in the movement of the robot and a position command generating section 8 for providing movement commands at predetermined time instants; reference symbols v and a respectively designate allowable velocity and acceleration values permitted by the robot controller; reference numeral 9 designates a speed compensation section which provides the above-described speed v and acceleration a in response to an instruction from the instruction execution control section 3; 10, a coordinate transformation section for converting a position command which is provided in the orthogonal coordinate system (X,Y,X,.alpha., .beta., .gamma.) by the position control unit 6 into a position command which is expressed in the coordinate system (J.sub.1 . . . , J.sub.k, . . . ) of the axes of the robot; 11, a position command which is outputted by the coordinate conversion section and is expressed by the coordinates of the axes of the robot; and 12, a positioning control section which, in response to a position command 13, performs positioning with respect to the movement of the robot.
The operation of the robot controller thus arranged will now be described.
When one of the programs stored in the program memory section 1 is selected, the instruction decoding section 2 start to decode the instructions in the program thus selected. The data obtained as a result of the instruction decoding operation is applied to the instruction execution control section 3. When the instruction in the program which has been decoded by the instruction decoding section 2 concerns the movement of the robot, the instruction execution control section 3 instructs the object position generating section 4 to generate an object position to which the robot should be moved. When the object position generating section 4 provides the object position 5, the position control section 6 performs position control and speed locus control with respect to the movement of the robot to the object position utilizing the allowable speed v and acceleration a set by the speed compensation section 9.
The position control unit 6 includes the speed command generating section 7 and the position command generating section 8, as described above. The speed command generating section 7 performs speed control and locus control for the movement of the robot. The position command generating section 8 performs position control.
Speed control and position control operations are carried out in a sampling mode. That is, a speed and a position are given every predetermined period of time .DELTA.t. When the preceding (.DELTA.t before) speed v.sub.i-1, object position P.sub.d, position P.sub.i-1, and allowable velocity v and acceleration a provided by the speed compensation selection are inputted, the speed command generating section 7 sets the direction of the present velocity v.sub.i the same as that of the vector P.sub.d -P.sub.i-1. Furthermore, the section 7 determines whether the present velocity is acceptable or should be made equal to or lower than the preceding speed. The position command generating section 8 provides the current position P.sub.i according to the preceding position P.sub.i-1 and the current velocity v.sub.i from the speed command generating section 7. The current velocity v.sub.i and position P.sub.i thus obtained are utilized for calculation of the next following velocity v.sub.i+1 and position P.sub.i+1 after the period of time .DELTA.t elapses.
When the current position P.sub.i has been determined, the coordinate transformation section 10 performs coordinate transformation from the orthogonal coordinate system (X,Y,Z,.alpha.,.beta.,.gamma.) into the coordinates system (J.sub.1, . . . , J.sub.6) of the axes of the robot.
The positioning control section 12 determines the present movements of the axes according to the coordinates 11 which have been obtained as described above. The present movements of the axes thus determined are applied through a D/A converter to respective motors. As a result, the robot is moved to the present object position (P.sub.i).
The above-described operations are repeatedly carried out until the robot reaches the object position P.sub.d.
The conventional robot controller designed as described above is permitted only one object position in the movement of the terminal of the robot. Therefore, in the control of a locus consisting of a series of points, it is necessary to change the object position at each point, and it is impossible to realize a continuous locus including a time axis. Furthermore, the conventional robot controller is disadvantageous in that the orientation of the terminal of the robot which has been moved to the object position cannot be changed by the outputs of a visual sensor or a touch sensor.